if(divDSigmaExpMethod == "standard")
  {
    divDSigmaExp = fvc::div
      (
       mu*gradDU.T() + lambda*(I*tr(gradDU)) - (mu + lambda)*gradDU,
       "div(sigma)"
       );
  }
 else if(divDSigmaExpMethod == "surface")
   { 
     divDSigmaExp = fvc::div
       (
	muf*(mesh.Sf() & fvc::interpolate(gradDU.T()))
	+ lambdaf*(mesh.Sf() & I*fvc::interpolate(tr(gradDU)))
	- (muf + lambdaf)*(mesh.Sf() & fvc::interpolate(gradDU))
	);
   }
 else if(divDSigmaExpMethod == "decompose")
   {
     surfaceTensorField shearGradDU =
       ((I - n*n)&fvc::interpolate(gradDU));
     
     divDSigmaExp = fvc::div
       (
	mesh.magSf()
	*(
	  - (muf + lambdaf)*(fvc::snGrad(DU)&(I - n*n))
	  + lambdaf*tr(shearGradDU&(I - n*n))*n
	  + muf*(shearGradDU&n)
	  )
	);
   }
 else if(divDSigmaExpMethod == "laplacian")
   {
     divDSigmaExp =
       - fvc::laplacian(mu + lambda, DU, "laplacian(DDU,DU)")
       + fvc::div
       (
	mu*gradDU.T()
	+ lambda*(I*tr(gradDU)),
	"div(sigma)"
	);
   }
 else
   {
     FatalError << "divDSigmaExp method " << divDSigmaExpMethod << " not found!" << endl;
   }
